#ifndef __LIB_AGORA_CORE_EMPACTER_H__
#define __LIB_AGORA_CORE_EMPACTER_H__

#include "IEmpacter.h"

namespace AgoraCore
{

class Empacter : public IEmpacter
{
public:
	Empacter();
	virtual void SetId(int id);
	virtual void EmpactAudio(IBuffer *data, IBuffer *out, unsigned int &size, InfoAudioBase* info, int sourceId, InfoAudioSpacial* infoSpacial = 0);
	virtual void EmpactAdmin(IBuffer *data, IBuffer *out, unsigned int &size, InfoAdmin* info);
	virtual void EmpactText(IBuffer *data, IBuffer *out, unsigned int &size);
	virtual void *Desempact(void *data, unsigned int &size, Header *header);
	virtual unsigned int GetPacketSizeWithoutHeader(void *header);
	virtual unsigned int GetHeaderSize();
private:
	int _id;
};

}


#endif